package com.asimplefox.entity.paypal;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.time.Instant;

@Data
public class PayPalAccessToken {
    private String scope;
    private String access_token;
    private String token_type;
    private String app_id;
    private int expires_in;
    private String nonce;

    // 用于存储 token 创建的时间
    @JSONField(serialize = false, deserialize = false)
    private Instant createdAt;

    // 构造函数
    public PayPalAccessToken() {
        // 初始化 token 的创建时间为当前时间
        this.createdAt = Instant.now();
    }

    // 检测 access_token 是否有效的方法
    public boolean isAccessTokenValid() {
        // token 过期时间 = 创建时间 + expires_in（秒）
        Instant expirationTime = createdAt.plusSeconds(expires_in);
        // 当前时间是否在过期时间之前
        return Instant.now().isBefore(expirationTime);
    }
}